<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of persistenciaUsuario
 *
 * @author Agustin
 */
class PersistenciaUsuario {

    private static $instance = false;

    public static function getInstance() {
        if (!self::$instance instanceof self) {
            self::$instance = new self;
        }
        return self::$instance;
    }

    private function __construct() {
        
    }

    public function login($usuario, $pass) {
        require_once 'Modelo/conexion.php';
        require_once 'Modelo/permiso.php';
        require_once 'Modelo/usuario.php';
        $query = "select (usuarios.idUsuario) as id , (usuarios.nombre) as usuario , (usuarios.contrasenia) as contrasenia, (permiso.idPermiso) as idPermiso , (permiso.nombre) as permiso from (SELECT * FROM usuario where nombre = '" . $usuario . "' and contrasenia = '" . $pass . "') as usuarios inner join permiso on usuarios.idPermiso = permiso.idPermiso ";
        $con = Conexion::getInstance();
        $res = $con->consulta($query);
        if ($res != null) {
            $permiso = new Permiso($res[0]['idPermiso'], $res[0]['permiso']);
            $usuario = new Usuario($res[0]['id'], $res[0]['usuario'], $res[0]['contrasenia'], $permiso);
            return $usuario;
        } else {
            return null;
        }
    }

    public function crearLogin($datos) {
        require_once 'Modelo/conexion.php';
        $con = Conexion::getInstance();
        $aux = 0;
        if ($datos[2] == 'Administrador') {
            $aux = 1;
        } else {
            $aux = 2;
        }
        $aux2 = '0';
        if ($this->buscarUser($datos[0]) == null) {
            $query = 'insert into usuario (nombre, contrasenia, idPermiso) values ("' . $datos[0] . '","' . $datos[1] . '",' . $aux . ');';

            $con->consulta($query);
            $aux2 = '1';
        }
        return $aux2;
    }

    public function modLogin($datos) {
        require_once 'Modelo/conexion.php';
        $con = Conexion::getInstance();
        $query = 'update usuario set contrasenia="' . $datos[2] . '", idpermiso =' . $datos[3] . ' where idusuario = ' . $datos[0];
        $con->consulta($query);
    }

    public function leerLogin($id) {
        require_once('conexion.php');
        $con = Conexion::getInstance();
        $query = 'select nombre, contrasenia, idpermiso from usuario where idusuario = ' . $id;
        $aux = $con->consulta($query);
        $res = null;
        if ($aux != null) {
            $res = $aux[0];
        }
        return $res;
    }

    public function delLogin($id) {
        require_once('conexion.php');
        $con = Conexion::getInstance();
        $query = 'delete from usuario where idusuario = ' . $id;
        $con->consulta($query);
        $aux = $this->leerLogin($id);
        if ($aux != null) {
            return false;
        }
        return true;
    }

    public function buscarUser2($nom) {
        if ($nom == '') {
            return false;
        }
        require_once('conexion.php');
        $con = Conexion::getInstance();
        $query = 'select idusuario from usuario where nombre = "' . $nom . '"';

        return $con->consulta($query);
    }

    public function buscarUser($nom) {
        if ($nom == '') {
            return false;
        }
        require_once('conexion.php');
        $con = Conexion::getInstance();
        $query = 'select idusuario from usuario where nombre = "' . $nom . '"';

        $aux = $con->consulta($query);
        if ($aux != null) {
            return true;
        }
        return false;
    }

}

?>
